In conventional distributed computing environments that include a service oriented architecture (SOA), messages are passed between and among clients and services. When sending a message from one endpoint (e.g., client or service) to another, the sender generally includes a primitive “send” program to place the message in transit, and the receiver generally includes a primitive “receive” program to retrieve the message.
It is often necessary to add additional information (e.g., security information, transaction information, etc.) to messages when they are sent, and to remove the additional information from the messages when they are received. In conventional distributed computing systems, a software developer is generally required to modify services and client applications that use services to add necessary functionality for the addition and removal of information to messages. Another approach is to add filters and interceptors in between the service and the client that augment a message transparently to the service and the client.
Once a conventional filter or interceptor is installed, it intercepts messages and adds or subtracts information from the messages according to its design. However, messages cannot be addressed to the filters/interceptors. Moreover, to modify or disable a filter or interceptor, conventional systems require the use of a backplane that enables system reconfiguration. Therefore, the mechanism for adding, subtracting and modifying filters/interceptors is different from the mechanism for using such filters/interceptors.